#include "BulletCollision/CollisionShapes/btStridingMeshInterface.h"
#ifdef __cplusplus
extern "C" {
#endif
btStridingMeshInterfaceData* bullet_NewbtStridingMeshInterfaceData(){
	btStridingMeshInterfaceData* wrap_out = new btStridingMeshInterfaceData();
	return wrap_out;
}

btMeshPartData** bullet_btStridingMeshInterfaceData_GetFieldOfM_meshPartsPtr(btStridingMeshInterfaceData* c_this){
	return (btMeshPartData**)(&c_this->m_meshPartsPtr);
}

int bullet_btStridingMeshInterfaceData_GetFieldOfM_numMeshParts(btStridingMeshInterfaceData* c_this){
	return (int)(c_this->m_numMeshParts);
}

char** bullet_btStridingMeshInterfaceData_GetFieldOfM_padding(btStridingMeshInterfaceData* c_this){
	return (char**)(&c_this->m_padding);
}

btVector3FloatData* bullet_btStridingMeshInterfaceData_GetFieldOfM_scaling(btStridingMeshInterfaceData* c_this){
	return (btVector3FloatData*)(&c_this->m_scaling);
}

void bullet_btStridingMeshInterface_calculateAabbBruteForce(btStridingMeshInterface* c_this,btVector3* aabbMin,btVector3* aabbMax){
	btVector3& c_arg_aabbMin=(btVector3&)(*aabbMin);
	btVector3& c_arg_aabbMax=(btVector3&)(*aabbMax);
	c_this->calculateAabbBruteForce(c_arg_aabbMin,c_arg_aabbMax);
}

btVector3* bullet_btStridingMeshInterface_getScaling(btStridingMeshInterface* c_this){
	btVector3 const& c_out = c_this->getScaling();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

void bullet_btStridingMeshInterface_setScaling(btStridingMeshInterface* c_this,btVector3* scaling){
	btVector3 const& c_arg_scaling=(btVector3 const&)(*scaling);
	c_this->setScaling(c_arg_scaling);
}

btShortIntIndexTripletData* bullet_NewbtShortIntIndexTripletData(){
	btShortIntIndexTripletData* wrap_out = new btShortIntIndexTripletData();
	return wrap_out;
}

char** bullet_btShortIntIndexTripletData_GetFieldOfM_pad(btShortIntIndexTripletData* c_this){
	return (char**)(&c_this->m_pad);
}

short** bullet_btShortIntIndexTripletData_GetFieldOfM_values(btShortIntIndexTripletData* c_this){
	return (short**)(&c_this->m_values);
}

btShortIntIndexData* bullet_NewbtShortIntIndexData(){
	btShortIntIndexData* wrap_out = new btShortIntIndexData();
	return wrap_out;
}

char** bullet_btShortIntIndexData_GetFieldOfM_pad(btShortIntIndexData* c_this){
	return (char**)(&c_this->m_pad);
}

short bullet_btShortIntIndexData_GetFieldOfM_value(btShortIntIndexData* c_this){
	return (short)(c_this->m_value);
}

btMeshPartData* bullet_NewbtMeshPartData(){
	btMeshPartData* wrap_out = new btMeshPartData();
	return wrap_out;
}

btShortIntIndexTripletData** bullet_btMeshPartData_GetFieldOfM_3indices16(btMeshPartData* c_this){
	return (btShortIntIndexTripletData**)(&c_this->m_3indices16);
}

btCharIndexTripletData** bullet_btMeshPartData_GetFieldOfM_3indices8(btMeshPartData* c_this){
	return (btCharIndexTripletData**)(&c_this->m_3indices8);
}

btShortIntIndexData** bullet_btMeshPartData_GetFieldOfM_indices16(btMeshPartData* c_this){
	return (btShortIntIndexData**)(&c_this->m_indices16);
}

btIntIndexData** bullet_btMeshPartData_GetFieldOfM_indices32(btMeshPartData* c_this){
	return (btIntIndexData**)(&c_this->m_indices32);
}

int bullet_btMeshPartData_GetFieldOfM_numTriangles(btMeshPartData* c_this){
	return (int)(c_this->m_numTriangles);
}

int bullet_btMeshPartData_GetFieldOfM_numVertices(btMeshPartData* c_this){
	return (int)(c_this->m_numVertices);
}

btVector3DoubleData** bullet_btMeshPartData_GetFieldOfM_vertices3d(btMeshPartData* c_this){
	return (btVector3DoubleData**)(&c_this->m_vertices3d);
}

btVector3FloatData** bullet_btMeshPartData_GetFieldOfM_vertices3f(btMeshPartData* c_this){
	return (btVector3FloatData**)(&c_this->m_vertices3f);
}

btIntIndexData* bullet_NewbtIntIndexData(){
	btIntIndexData* wrap_out = new btIntIndexData();
	return wrap_out;
}

int bullet_btIntIndexData_GetFieldOfM_value(btIntIndexData* c_this){
	return (int)(c_this->m_value);
}

btCharIndexTripletData* bullet_NewbtCharIndexTripletData(){
	btCharIndexTripletData* wrap_out = new btCharIndexTripletData();
	return wrap_out;
}

char bullet_btCharIndexTripletData_GetFieldOfM_pad(btCharIndexTripletData* c_this){
	return (char)(c_this->m_pad);
}

unsigned char** bullet_btCharIndexTripletData_GetFieldOfM_values(btCharIndexTripletData* c_this){
	return (unsigned char**)(&c_this->m_values);
}

#ifdef __cplusplus
}
#endif
